|
This page last changed on Feb 26, 2008.
eDocs Home > BEA AquaLogic Data Services Platform Documentation > Data Services Developer's Guide > Contents Data Service Annotations Schema<?xml version="1.0"?>
<xs:schema targetNamespace="urn:annotations.ld.bea.com" xmlns:tns="urn:annotations.ld.bea.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<!--==================-->
<!-- XDS annotation -->
<!--==================-->
<xs:element name="xds">
<xs:complexType>
<xs:sequence>
<!-- document properties -->
<xs:element name="author" type="xs:string" minOccurs="0"/>
<xs:element name="comment" type="xs:string" minOccurs="0"/>
<xs:element name="creationDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="documentation" type="xs:string" minOccurs="0"/>
<xs:element name="version" type="xs:decimal" minOccurs="0"/>
<!-- user defined properties -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="property">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- data access properties -->
<xs:choice>
<!-- choice 1: java functions -->
<xs:element name="javaFunction">
<xs:complexType>
<xs:attribute name="class" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- choice 2: web services -->
<xs:element name="webService">
<xs:complexType>
<xs:attribute name="wsdl" type="xs:anyURI" use="required"/>
<xs:attribute name="targetNamespace" type="xs:anyURI" use="required"/>
<xs:attribute name="sbProxyServiceName" type="xs:string"/>
<xs:attribute name="sbTransportProtocol" type="tns:SBTransportProtocolType"/>
</xs:complexType>
</xs:element>
<!-- choice 3: relational sources -->
<xs:element name="relationalDB">
<xs:complexType>
<xs:sequence>
<xs:element name="properties" minOccurs="0">
<xs:complexType>
<xs:anyAttribute processContents="lax" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="providerId" type="xs:string" />
<xs:attribute name="dbType" type="xs:string"/>
<xs:attribute name="dbVersion" type="xs:string"/>
<xs:attribute name="driver" type="xs:string"/>
<xs:attribute name="uri" type="xs:string"/>
<xs:attribute name="username" type="xs:string"/>
<xs:attribute name="password" type="xs:string"/>
<xs:attribute name="SID" type="xs:string"/>
<xs:attribute name="sourceBindingProviderClassName" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- choice 4: delimited files -->
<xs:element name="delimitedFile">
<xs:complexType>
<xs:attribute name="file" type="xs:anyURI"/>
<xs:attribute name="schema" type="xs:anyURI"/>
<xs:attribute name="inferredSchema" type="xs:boolean" default="false"/>
<xs:attribute name="delimiter" type="xs:string"/>
<xs:attribute name="fixedLength" type="xs:positiveInteger"/>
<xs:attribute name="hasHeader" type="xs:boolean" default="false"/>
</xs:complexType>
</xs:element>
<!-- choice 5: XML files -->
<xs:element name="xmlFile">
<xs:complexType>
<xs:attribute name="file" type="xs:anyURI"/>
<xs:attribute name="schema" type="xs:anyURI" use="required"/>
</xs:complexType>
</xs:element>
<!-- choice 6: user defined view -->
<xs:element name="userDefinedView" minOccurs="0"/>
<!-- choice 7: nothing, defaults to userDefinedView -->
<xs:sequence/>
</xs:choice>
<!-- field annotations -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="field">
<xs:complexType>
<xs:sequence>
<xs:element name="extension" minOccurs="0">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="autoNumber">
<xs:complexType>
<xs:attribute name="type" type="tns:autoNumberType" use="required"/>
<xs:attribute name="sequenceObjectName" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="nativeXpath" type="xs:string"/>
<xs:attribute name="nativeType" type="xs:string"/>
<xs:attribute name="nativeTypeCode" type="xs:int"/>
<xs:attribute name="nativeSize" type="xs:int"/>
<xs:attribute name="nativeFractionalDigits" type="tns:scaleType"/>
<xs:attribute name="nativeKey" type="xs:boolean" default="false"/>
<!-- relational: autoNumber -->
<!-- relational: native column names and types -->
</xs:complexType>
</xs:element>
<xs:element name="properties">
<xs:complexType>
<xs:attribute name="immutable" type="xs:boolean" default="false"/>
<xs:attribute name="nullable" type="xs:boolean" default="false"/>
<xs:attribute name="transient" type="xs:boolean" default="false"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="xpath" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- keys -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="key">
<xs:complexType>
<xs:sequence>
<xs:element name="selector" minOccurs="0"> <!-- defaults to . -->
<xs:complexType>
<xs:sequence>
<xs:element name="extension" minOccurs="0">
<xs:complexType>
<xs:attribute name="nativeXpath" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="xpath" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="type" type="xs:QName"/>
<xs:attribute name="inferred" type="xs:boolean" default="true"/>
<xs:attribute name="inferredSchema" type="xs:boolean" default="true"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- relationships -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="relationshipTarget">
<xs:complexType>
<xs:sequence>
<xs:element name="relationship" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="description" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="roleName" type="xs:string" use="required"/>
<xs:attribute name="roleNumber" type="tns:roleType" default="1"/>
<xs:attribute name="XDS" type="xs:string" use="required"/>
<xs:attribute name="minOccurs" type="tns:allNNI" default="1"/>
<xs:attribute name="maxOccurs" type="tns:allNNI" default="1"/>
<xs:attribute name="opposite" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- SDO elements -->
<xs:element name="functionForDecomposition" minOccurs="0">
<xs:complexType>
<xs:attribute name="name" type="xs:QName" use="required"/>
<xs:attribute name="arity" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="javaUpdateExit" minOccurs="0">
<xs:complexType>
<xs:attribute name="className" type="xs:string" use="required"/>
<xs:attribute name="classFile" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="optimisticLockingFields" minOccurs="0">
<xs:complexType>
<xs:choice>
<xs:element name="updated">
<xs:complexType/>
</xs:element>
<xs:element name="projected">
<xs:complexType/>
</xs:element>
<xs:element name="field" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<!-- security -->
<xs:element name="secureResources" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="secureResource" type="xs:NCName" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="readOnly" minOccurs="0">
<xs:complexType/>
</xs:element>
</xs:sequence>
<xs:attribute name="targetType" type="xs:QName" use="required"/>
</xs:complexType>
</xs:element>
<!--==================-->
<!-- XFL annotation -->
<!--==================-->
<xs:element name="xfl">
<xs:complexType>
<xs:sequence>
<!-- document properties -->
<xs:element name="author" type="xs:string" minOccurs="0"/>
<xs:element name="comment" type="xs:string" minOccurs="0"/>
<xs:element name="creationDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="documentation" type="xs:string" minOccurs="0"/>
<xs:element name="version" type="xs:decimal" minOccurs="0"/>
<!-- user defined properties -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="property">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- data access properties -->
<xs:choice>
<!-- choice 1: java functions -->
<xs:element name="javaFunction">
<xs:complexType>
<xs:attribute name="class" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- choice 2: web services -->
<xs:element name="webService">
<xs:complexType>
<xs:attribute name="wsdl" type="xs:anyURI" use="required"/>
<xs:attribute name="targetNamespace" type="xs:anyURI" use="required"/>
<xs:attribute name="sbProxyServiceName" type="xs:string"/>
<xs:attribute name="sbTransportProtocol" type="tns:SBTransportProtocolType"/>
</xs:complexType>
</xs:element>
<!-- choice 3: relational sources -->
<xs:element name="relationalDB">
<xs:complexType>
<xs:sequence>
<xs:element name="properties" minOccurs="0">
<xs:complexType>
<xs:anyAttribute processContents="lax" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="providerId" type="xs:string" />
<xs:attribute name="dbType" type="xs:string"/>
<xs:attribute name="dbVersion" type="xs:string"/>
<xs:attribute name="driver" type="xs:string"/>
<xs:attribute name="uri" type="xs:string"/>
<xs:attribute name="username" type="xs:string"/>
<xs:attribute name="password" type="xs:string"/>
<xs:attribute name="SID" type="xs:string"/>
<xs:attribute name="sourceBindingProviderClassName" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- choice 6: user defined view -->
<xs:element name="userDefinedView" minOccurs="0"/>
<!-- choice 7: nothing, defaults to userDefinedView -->
<xs:sequence/>
<!-- choice 8: custom native functions -->
<xs:element name="customNativeFunctions">
<xs:complexType>
<xs:choice>
<xs:element name="relational">
<xs:complexType>
<xs:sequence>
<xs:element name="dataSource" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:choice>
<!-- field annotations -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="field">
<xs:complexType>
<xs:sequence>
<xs:element name="extension" minOccurs="0">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="autoNumber">
<xs:complexType>
<xs:attribute name="type" type="tns:autoNumberType" use="required"/>
<xs:attribute name="sequenceObjectName" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="nativeXpath" type="xs:string"/>
<xs:attribute name="nativeType" type="xs:string"/>
<xs:attribute name="nativeTypeCode" type="xs:int"/>
<xs:attribute name="nativeSize" type="xs:int"/>
<xs:attribute name="nativeFractionalDigits" type="tns:scaleType"/>
<!-- relational: autoNumber -->
<!-- relational: native column names and types -->
</xs:complexType>
</xs:element>
<xs:element name="properties">
<xs:complexType>
<xs:attribute name="immutable" type="xs:boolean" default="false"/>
<xs:attribute name="nullable" type="xs:boolean" default="false"/>
<xs:attribute name="transient" type="xs:boolean" default="false"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="xpath" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:element name="secureResources" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="secureResource" type="xs:NCName" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--=======================-->
<!-- function annotation -->
<!--=======================-->
<xs:element name="function">
<xs:complexType>
<xs:sequence>
<!-- standard properties -->
<xs:element name="author" type="xs:string" minOccurs="0"/>
<xs:element name="comment" type="xs:string" minOccurs="0"/>
<xs:element name="version" type="xs:decimal" minOccurs="0"/>
<xs:element name="documentation" type="xs:string" minOccurs="0"/>
<!-- user defined properties -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="property">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- UI properties -->
<xs:element name="uiProperties" minOccurs="0">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="component">
<xs:complexType>
<xs:sequence>
<xs:element name="treeInfo" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="collapsedNodes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="collapsedNode" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="identifier" type="xs:string"/>
<xs:attribute name="minimized" type="xs:boolean" default="false"/>
<xs:attribute name="x" type="xs:int"/>
<xs:attribute name="y" type="xs:int"/>
<xs:attribute name="w" type="xs:int"/>
<xs:attribute name="h" type="xs:int"/>
<xs:attribute name="viewPosX" type="xs:int"/>
<xs:attribute name="viewPosY" type="xs:int"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- sql statement -->
<xs:element name="sql" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="isSubquery" type="xs:boolean" default="true"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- cache -->
<xs:element name="nonCacheable" minOccurs="0">
<xs:complexType/>
</xs:element>
<!-- transactions -->
<xs:element name="nonTransactional" minOccurs="0">
<xs:complexType/>
</xs:element>
<!-- optimization -->
<xs:element name="outputIsOrderedBy" minOccurs="0">
<xs:complexType>
<xs:sequence>
<!-- absent for parameters whose order in the function signature
coincides with their order in the order by list -->
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<!-- 1, 2, ... -->
<xs:attribute name="index" type="xs:int" use="required"/>
<!-- overrides default -->
<xs:attribute name="mode" type="tns:orderingModeType"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="mode" type="tns:orderingModeType" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="inverseFunctions" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="inverseFunction" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<!-- 1, 2, ... -->
<xs:attribute name="parameterIndex" type="xs:int"/>
<xs:attribute name="name" type="xs:QName" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="equivalentTransforms" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="pair" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="source" type="xs:QName" use="required"/>
<xs:attribute name="target" type="xs:QName" use="required"/>
<xs:attribute name="arity" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- polymorphism -->
<xs:element name="isPolymorphic" minOccurs="0">
<xs:complexType>
<xs:choice>
<xs:element name="parameter">
<xs:complexType>
<xs:sequence/>
<!-- optional: defaults to 1 -->
<xs:attribute name="index" type="xs:nonNegativeInteger"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<!-- signature: used by java functions and stored procedures -->
<xs:element name="params" minOccurs="0">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="nativeType" type="xs:string"/>
<xs:attribute name="nativeTypeCode" type="xs:int"/>
<xs:attribute name="xqueryType" type="xs:QName"/>
<xs:attribute name="kind" type="tns:paramKindType"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- interceptor configuration: used by webservice SOAP interceptors -->
<xs:element name="interceptorConfiguration" minOccurs="0">
<xs:complexType>
<xs:attribute name="aliasName" type="xs:string" use="required"/>
<xs:attribute name="fileName" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- implementation -->
<xs:element name="implementation" minOccurs="0">
<xs:complexType>
<xs:choice>
<xs:element name="updateTemplate">
<xs:complexType/>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="visibility" type="tns:functionVisibilityType" default="protected"/>
<xs:attribute name="kind" type="tns:functionKindType" default="library"/>
<xs:attribute name="isPrimary" type="xs:boolean" default="false"/>
<xs:attribute name="roleName" type="xs:string"/>
<xs:attribute name="nativeName" type="xs:string"/>
<xs:attribute name="nativeLevel1Container" type="xs:string"/>
<xs:attribute name="nativeLevel2Container" type="xs:string"/>
<xs:attribute name="nativeLevel3Container" type="xs:string"/>
<xs:attribute name="style" type="tns:functionStyleType"/>
</xs:complexType>
</xs:element>
<!--================-->
<!-- common types -->
<!--================-->
<xs:simpleType name="functionVisibilityType">
<xs:restriction base="xs:string">
<xs:enumeration value="public"/>
<xs:enumeration value="protected"/>
<xs:enumeration value="private"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="functionKindType">
<xs:restriction base="xs:string">
<xs:enumeration value="read"/>
<xs:enumeration value="navigate"/>
<xs:enumeration value="create"/>
<xs:enumeration value="update"/>
<xs:enumeration value="delete"/>
<xs:enumeration value="library"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="functionStyleType">
<xs:restriction base="xs:string">
<xs:enumeration value="table"/>
<xs:enumeration value="view"/>
<xs:enumeration value="storedProcedure"/>
<xs:enumeration value="sqlQuery"/>
<xs:enumeration value="document"/>
<xs:enumeration value="rpc"/>
</xs:restriction>
</xs:simpleType>
<!-- used by stored procedures -->
<xs:simpleType name="paramKindType">
<xs:restriction base="xs:string">
<xs:enumeration value="unknown"/>
<xs:enumeration value="in"/>
<xs:enumeration value="inout"/>
<xs:enumeration value="out"/>
<xs:enumeration value="return"/>
<xs:enumeration value="result"/>
</xs:restriction>
</xs:simpleType>
<!-- used by maxOccurs in relationship -->
<xs:simpleType name="allNNI">
<xs:union memberTypes="xs:nonNegativeInteger">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="unbounded"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- used by relationships -->
<xs:simpleType name="roleType">
<xs:restriction base="xs:nonNegativeInteger">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="autoNumberType">
<xs:restriction base="xs:string">
<xs:enumeration value="identity"/>
<xs:enumeration value="sequence"/>
<xs:enumeration value="userComputed"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="nullSortOrderType">
<xs:restriction base="xs:string">
<xs:enumeration value="high"/>
<xs:enumeration value="low"/>
<xs:enumeration value="unknown"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="scaleType">
<xs:union memberTypes="xs:int">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="null"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="orderingModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="ascending"/>
<xs:enumeration value="descending"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="stringListType">
<xs:list itemType="xs:string"/>
</xs:simpleType>
<xs:simpleType name="dataSourcesType">
<xs:restriction base="tns:stringListType">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SBTransportProtocolType">
<xs:restriction base="xs:string">
<xs:enumeration value="t3"/>
<xs:enumeration value="iiop"/>
<xs:enumeration value="http"/>
<xs:enumeration value="t3s"/>
<xs:enumeration value="iiops"/>
<xs:enumeration value="https"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
|
| Document generated by Confluence on Apr 28, 2008 15:54 |